在股市的世界裡,每天都有數不清的新聞、財經報導、分析文章、甚至論壇留言。
但這些訊息中,有些只是「雜訊」,有些才是真正影響股價的「訊號」。
今天我們要用 AI 自動幫忙判斷、分類、總結,讓投資人不用再被資訊海淹沒!
python
import requests
import pandas as pd
import google.generativeai as genai
# === 設定 API ===
NEWS_API_KEY = "你的NewsAPI金鑰"
genai.configure(api_key="你的Gemini API Key")
model = genai.GenerativeModel("gemini-1.5-flash")
# === 抓取財經新聞 ===
url = f"https://newsapi.org/v2/everything?q=stock market&language=en&apiKey={NEWS_API_KEY}"
resp = requests.get(url).json()
articles = resp["articles"][:5] # 取前五篇新聞
news_df = pd.DataFrame([{
"title": a["title"],
"content": a["description"]
} for a in articles])
print(news_df)
# === AI 自動過濾與摘要 ===
for i, row in news_df.iterrows():
prompt = f"""
以下是一則財經新聞:
標題:{row['title']}
內文:{row['content']}
請判斷這則新聞是否對股市有實質影響 (Yes/No),
並簡單摘要重點(50字內)。
"""
response = model.generate_content(prompt)
print(f"新聞 {i+1} 分析結果:\n{response.text}\n")
很多人會看 StockTwits、Reddit、PTT 股票版,但裡面資訊良莠不齊。
我們可以讓 AI 幫忙分辨 情緒、可信度。
python
import google.generativeai as genai
genai.configure(api_key="YOUR_GEMINI_API_KEY")
model = genai.GenerativeModel("gemini-2.5-flash")
comments = [
"這支股票快要爆發了!買就對了!🚀🚀",
"根據公司財報,本季營收下降 10%,要小心。",
"聽說有內線交易,趕快跑吧!"
]
for c in comments:
prompt = f"""
這是一則投資留言:{c}
請幫我分類:
1. 內容是否具備可信度 (高/中/低)
2. 情緒傾向 (樂觀/悲觀/中立)
3. 是否可能是市場雜訊 (Yes/No)
"""
resp = model.generate_content(prompt)
print(f"留言分析:{c}\n{resp.text}\n")
功能:AI 幫你過濾掉「過度情緒化」或「毫無依據」的留言。
接著可以用 X API 抓即時推文,然後讓 AI 過濾:
哪些推文有實際價值
哪些只是情緒渲染
總結當前市場氣氛
python
!pip install tweepy pandas
import tweepy
import pandas as pd
# === 填入你的 Twitter API Key (Bearer Token) ===
bearer_token = "YOUR_TWITTER_BEARER_TOKEN"
# 建立 client
client = tweepy.Client(bearer_token=bearer_token)
# === 設定搜尋條件 ===
query = "(投資 OR 股票 OR 股市 OR ETF OR 美股 OR 投資理財) lang:zh -is:retweet"
# 搜尋中文推文,排除轉推
tweets = client.search_recent_tweets(
query=query,
max_results=50, # 每次最多 100
tweet_fields=["id", "text", "created_at", "author_id", "lang"]
)
# === 整理成 DataFrame ===
data = []
for tweet in tweets.data:
data.append([tweet.id, tweet.created_at, tweet.author_id, tweet.text])
df = pd.DataFrame(data, columns=["id", "date", "author", "content"])
df.head()
先去 X Developer Portal 申請專案。
在「Keys and Tokens」裡找到 Bearer Token,複製貼到程式裡。
修改 query,就能抓取你要的資料。
接著要把「海量的推文」轉化成「精煉的市場情報」,用 Gemini AI 過濾並總結。
python
import google.generativeai as genai
# === Gemini API Key ===
genai.configure(api_key="你的_Gemini_API_Key")
model = genai.GenerativeModel("gemini-1.5-flash")
# 整理推文內容
tweet_texts = "\n".join(df["content"].tolist())
# 指示 Gemini 過濾
prompt = f"""
以下是一些投資相關推文,請幫我分類與總結:
1. 哪些推文有實際價值(包含數據、公司動向、投資理由)?
2. 哪些推文只是情緒渲染(樂觀或悲觀,但缺乏具體依據)?
3. 總結這些推文反映的當前市場氣氛。
推文內容如下:
{tweet_texts}
"""
response = model.generate_content(prompt)
print(response.text)
今天我們把這個專案的資訊過濾系統成功升級,現在它不只能自動篩選有用的新聞,還能從論壇和社群媒體中過濾雜訊,確保使用者能迅速掌握關鍵資訊,不再被海量無用訊息淹沒。
👉 明天(Day 21),我們要開始把前面 20 天的成果慢慢整合進「AI 投資助理展示館」網站!